fix: bump pytest, aiohttp, and cryptography for security CVEs#535
fix: bump pytest, aiohttp, and cryptography for security CVEs#535johnnygreco merged 3 commits intomainfrom
Conversation
- pytest 9.0.2 → 9.0.3 (CVE-2025-71176, High — RCE via symlink TOCTOU) - aiohttp 3.13.3 → 3.13.5 (10 Medium CVEs — DoS, CRLF injection, credential theft, request smuggling) - cryptography 46.0.6 → 46.0.7 (CVE-2026-39892, Medium — buffer overflow on Python >3.11) Add constraint-dependencies for transitive deps (aiohttp, cryptography) to enforce minimum safe versions across both workspace and e2e lockfiles.
Match the 2-space indentation used throughout the file.
Greptile SummaryBumps
|
| Filename | Overview |
|---|---|
| pyproject.toml | Adds constraint-dependencies for aiohttp>=3.13.5 and cryptography>=46.0.7 to patch 11 CVEs; bumps pytest lower bound from 9.0.2 to 9.0.3 (CVE-2025-71176) |
| tests_e2e/pyproject.toml | Mirrors root changes: bumps pytest to >=9.0.3 and adds aiohttp/cryptography constraint-dependencies to this separate uv workspace |
| uv.lock | All three packages correctly bumped (aiohttp 3.13.3→3.13.5, cryptography 46.0.6→46.0.7, pytest 9.0.2→9.0.3) and constraints reflected; lock revision unexpectedly decreased from 3 to 2 |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[NSpect Security Scan\nNSPECT-I91N-9KY3] --> B{13 CVEs Found}
B --> C[pytest CVE-2025-71176\nHigh - RCE via symlink TOCTOU]
B --> D[aiohttp 10x Medium CVEs\nDoS, CRLF, credential theft,\nrequest smuggling]
B --> E[cryptography CVE-2026-39892\nMedium - buffer overflow\nPython >3.11]
C --> F[pytest >=9.0.3\nin pyproject.toml &\ntests_e2e/pyproject.toml]
D --> G[constraint-dependencies\naiohttp>=3.13.5\nin both workspaces]
E --> H[constraint-dependencies\ncryptography>=46.0.7\nin both workspaces]
F --> I[uv.lock regenerated\naiohttp 3.13.3→3.13.5\ncryptography 46.0.6→46.0.7\npytest 9.0.2→9.0.3]
G --> I
H --> I
Prompt To Fix All With AI
This is a comment left during a code review.
Path: uv.lock
Line: 2
Comment:
**Lock file revision downgraded**
The `revision` field dropped from `3` to `2`, indicating the lock was regenerated with an older version of uv than the one that originally produced the `revision = 3` lock. If CI or other contributors use the newer uv (which writes revision 3), they will see a dirty lock on next run and either fail CI or silently regenerate it. Confirm the uv version used here aligns with the version used in CI.
How can I resolve this? If you propose a fix, please make it concise.Reviews (2): Last reviewed commit: "Merge branch 'main' into johnny/fix/bump..." | Re-trigger Greptile
Code Review: PR #535 — fix: bump pytest, aiohttp, and cryptography for security CVEsSummaryThis PR bumps three dependencies to patch 13 known security vulnerabilities (1 High, 12 Medium) flagged by NSpect scan
FindingsPositive
Minor Observations
No Issues Found
VerdictApprove. This is a clean, well-documented security patch. The dependency bumps are correctly scoped, use the right uv mechanisms, and introduce no functional changes. CI confirms no regressions. Ship it. |
📋 Summary
Bump three dependencies to patch 13 known security vulnerabilities (1 High, 12 Medium) flagged by NSpect scan
NSPECT-I91N-9KY3.🔗 Related Issue
N/A — driven by NSpect security scan results.
🔄 Changes
pytestlower bound from>=9.0.2to>=9.0.3in root andtests_e2epyproject.toml (CVE-2025-71176 — High, RCE via symlink TOCTOU)constraint-dependenciesin rootpyproject.tomlandtests_e2e/pyproject.tomlto enforce minimum safe versions for transitive deps:aiohttp>=3.13.5(10 Medium CVEs — DoS, CRLF injection, credential theft, request smuggling)cryptography>=46.0.7(CVE-2026-39892 — Medium, buffer overflow on Python >3.11)uv.lock— aiohttp 3.13.3 → 3.13.5, cryptography 46.0.6 → 46.0.7, pytest 9.0.2 → 9.0.3🧪 Testing
make testpasses (638 tests)✅ Checklist